package com.lncg.service;

import com.lncg.entity.BusinessPortConfig;

import java.util.List;

/**
 * 业务端口配置服务接口
 * 
 * 提供业务端口配置的业务逻辑操作，包括查询端口配置和更新运行状态。
 * 主要用于Netty服务器启动时的端口配置读取和状态管理。
 * 
 * @author LNCG
 * @version 1.2.0
 * @since 2024-10-17
 */
public interface IBusinessPortConfigService {
    
    /**
     * 查询所有启用的业务端口配置
     * 
     * 用于Netty服务器启动时获取需要启动的端口列表。
     * 只返回status=1（启用）的端口配置。
     * 
     * @return 启用的业务端口配置列表
     */
    List<BusinessPortConfig> getAllEnabledConfigs();
    
    /**
     * 根据端口号查询配置
     * 
     * @param port 端口号
     * @return 业务端口配置，如果不存在则返回null
     */
    BusinessPortConfig getConfigByPort(Integer port);
    
    /**
     * 更新指定端口的运行状态
     * 
     * 用于端口启动成功后更新运行状态，或启动失败时重置状态。
     * 
     * @param port 端口号
     * @param isRunning 运行状态：1-运行中，0-已停止
     * @return 操作是否成功
     */
    boolean updateRunningStatus(Integer port, Integer isRunning);
    
    /**
     * 更新所有端口的运行状态为停止
     * 
     * 用于系统启动前重置状态，或系统停止时批量更新状态。
     * 
     * @return 操作是否成功
     */
    boolean updateAllRunningStatusToStop();
    
    /**
     * 获取所有启用的端口号列表
     * 
     * 用于快速获取需要启动的端口号列表。
     * 
     * @return 端口号列表
     */
    List<Integer> getAllPorts();
}
